import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class _24_两两交换链表中的节点 {


    @Test
    public void test(){


    }

    /**
     * 思路：每次移动两个节点，要是移动后不存在节点就结束
     * 要是存在一个节点的话，就直接指向这个节点
     * 存在两个节点就将我们设置的节点指向第二个节点，然后再指向第一个节点
     * @param head
     * @return
     */
    public ListNode swapPairs(ListNode head) {
        if (head==null||head.next==null){
            return head;
        }
        ListNode head1=new ListNode(0);
        ListNode res=head1;
        while (head!=null){

            if (head.next!=null){
                res.next=head.next;
                res=res.next;
                res.next=head;
                res=res.next;
                //每次移动两个元素
                head=head.next.next;
            }else {
                res.next=head;
                res=res.next;
            }

        }
        return head1.next;



    }

}
